


#ifndef PF_PREVIEWACTIONINTERFACE_H
#define PF_PREVIEWACTIONINTERFACE_H

#include "pf_actioninterface.h"
#include "pf_painter.h"
#include "pf_preview.h"
#include "lx_Export.h"
/**
 * This is the interface that must be implemented for all 
 * action classes which need a preview. 
 *

 */
class LX_EXPORT PF_PreviewActionInterface : public PF_ActionInterface {
public:
    PF_PreviewActionInterface(const char* name,
                              PF_Container& container,
                              PF_GraphicView& graphicView);
    virtual ~PF_PreviewActionInterface();

    virtual void init(int status=0);
    virtual void finish();
    virtual void suspend();
    virtual void resume();
    virtual void trigger();
    void drawPreview();
    void deletePreview();
	
private:

protected:
    /**
     * Preview that holds the entities to be previewed.
     */
    PF_Preview* preview;
    /**
     * Current offset of the preview.
     */
    PF_Vector offset;
};

#endif
